home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / util1 / wgrab.lha / wgrab.c < prev    next >
C/C++ Source or Header  |  1995-10-30  |  21KB  |  529 lines

  1. /* $Id: wgrab.c,v 1.2 1995/10/29 10:50:38 aris Exp aris $
  2. */
  3. #define CATCOMP_ARRAY
  4. #include "wgrab.h"
  5. #include "wgrab_cat.h"
  6. #include <clib/commodities_protos.h>
  7. #include <libraries/commodities.h>
  8. #include <clib/locale_protos.h>
  9. #include <libraries/locale.h>
  10. #include <time.h>
  11.  
  12.  
  13. #define _DEFPOPUP_  "lalt w"
  14. #define _DEFWGRAB_  "lalt g"
  15. #define _DEFSGRAB_  "lalt c"
  16.  
  17. #ifdef IFFBASE
  18. #define MYLIBBASE IFFBase
  19. #endif
  20. #ifdef DATATYPES
  21. #define MYLIBBASE DataTypesBase
  22. #endif
  23.  
  24. struct Library *MYLIBBASE,*IconBase;
  25. struct Library *CxBase;
  26. struct LocaleBase *LocaleBase;
  27.  
  28. enum {EID_AMODE=1,EID_DMODE,EID_FILENAME,EID_MHOTKEY,EID_GWHOTKEY,EID_GSHOTKEY,};
  29. enum {ID_SAVE=1,
  30.       ID_USE,
  31.       ID_HIDE,
  32.       ID_ABOUT,
  33.       ID_QUIT,
  34.       ID_AMODEON,ID_AMODEOFF,
  35.       ID_DMODEON,ID_DMODEOFF,
  36.       MN_PROJECT,MN_SETTINGS,
  37.       ID_LOAD,ID_LOADENV,ID_LOADDEF,};
  38. enum {HOTKEY_MAIN,HOTKEY_WGRAB,HOTKEY_SGRAB,};
  39.  
  40. APTR App,mwin,fname,dmode,amode,mhotkey,pfname,mn_main;
  41. APTR gwhotkey,gshotkey,bt_save,bt_use,bt_quit,helptx;
  42.  
  43. CxObj *broker;
  44. struct MsgPort *broker_port;
  45. CxObj *cmhotkey,*cgwhotkey,*cgshotkey;
  46. struct Catalog *mycatalog;
  47.  
  48. #define setmnlabel(number,label,comm) mn_data[number].nm_Label=lgetstring(label);\
  49.                                       mn_data[number].nm_CommKey=((comm)?lgetstring(comm):0)
  50. #define menuBAR {NM_ITEM,NM_BARLABEL,0,0,0,(APTR)0}
  51.  
  52. /*FOLDER Compute Hotkey String
  53. */
  54. char *mhotkeystr(void)
  55. {
  56.     char *str=(char *)malloc(sizeof(char)*30);
  57.     char *ht=(char *)malloc(sizeof(char)*30);
  58.     get(mhotkey,MUIA_String_Contents,&ht);
  59.     sprintf(str,"rawkey %s",ht);
  60.     return(str);
  61.     }
  62. char *gwhotkeystr(void)
  63. {
  64.     char *str=(char *)malloc(sizeof(char)*30);
  65.     char *ht=(char *)malloc(sizeof(char)*30);
  66.     get(gwhotkey,MUIA_String_Contents,&ht);
  67.     sprintf(str,"rawkey %s",ht);
  68.     return(str);
  69.     }
  70. char *gshotkeystr(void)
  71. {
  72.     char *str=(char *)malloc(sizeof(char)*30);
  73.     char *ht=(char *)malloc(sizeof(char)*30);
  74.     get(gshotkey,MUIA_String_Contents,&ht);
  75.     sprintf(str,"rawkey %s",ht);
  76.     return(str);
  77.     }
  78. /*END*/
  79. void setnewhotkeys(void)
  80. {
  81.     RemoveCxObj(cmhotkey);
  82.     RemoveCxObj(cgwhotkey);
  83.     RemoveCxObj(cgshotkey);
  84.     DeleteCxObj(cmhotkey);
  85.     DeleteCxObj(cgwhotkey);
  86.     DeleteCxObj(cgshotkey);
  87.     cmhotkey=HotKey(mhotkeystr(),broker_port,HOTKEY_MAIN);
  88.     cgwhotkey=HotKey(gwhotkeystr(),broker_port,HOTKEY_WGRAB);
  89.     cgshotkey=HotKey(gshotkeystr(),broker_port,HOTKEY_SGRAB);
  90.     AttachCxObj(broker,cmhotkey);
  91.     AttachCxObj(broker,cgwhotkey);
  92.     AttachCxObj(broker,cgshotkey);
  93.     }
  94.  
  95. /*FOLDER DoGrab
  96. */
  97. void dograb(BOOL screen)
  98. {
  99.     APTR req;
  100.     long ask,dmod;
  101.     char *filename=(char *)malloc(sizeof(char)*256);
  102.     char *file;
  103.     char *dir=(char *)malloc(sizeof(char)*256);
  104.     char *sfile;
  105.     struct TagItem AslTags[]={ASLFR_DoSaveMode,(ULONG)TRUE,
  106.                               ASLFR_TitleText,(ULONG)"Chose Filename to Save to!",
  107.                               ASLFR_InitialDrawer,(ULONG)NULL,
  108.                               TAG_DONE,0};
  109.     Object *picture;
  110.  
  111.     picture=GetPicture(screen);
  112.  
  113.     if (picture) {
  114.  
  115.         get(fname,MUIA_String_Contents,&sfile);
  116.         get(amode,MUIA_Selected,&ask);
  117.  
  118.         if (ask) {
  119.  
  120.             if (req=MUI_AllocAslRequest(0,NULL)) {
  121.  
  122.                 if (sfile) {
  123.  
  124.                     stcgfp(dir,sfile);
  125.                     AslTags[2].ti_Data=(ULONG)dir;
  126.  
  127.                     }
  128.  
  129.                 if (MUI_AslRequest(req,AslTags)) {
  130.  
  131.                     filename=((struct FileRequester *)req)->fr_Drawer;
  132.                     file=((struct FileRequester *)req)->fr_File;
  133.                     AddPart(filename,file,256);
  134.                     SavePicture(picture,filename);
  135.                     MUI_FreeAslRequest(req);
  136.                     return;
  137.                     }
  138.                 MUI_FreeAslRequest(req);
  139.                 }
  140.             }
  141.         get(dmode,MUIA_Selected,&dmod);
  142.  
  143.         if (dmod) {
  144.  
  145.             struct tm *p;
  146.             long t;
  147.  
  148.             time(&t);
  149.             p=localtime(&t);
  150.             stcgfp(filename,sfile);
  151.             sprintf(dir,"pic%d.%d.%d.iff",p->tm_hour,p->tm_min,p->tm_sec);
  152.             AddPart(filename,dir,256);
  153.             SavePicture(picture,filename);
  154.             return;
  155.             }
  156.         SavePicture(picture,sfile);
  157.         return;
  158.         }
  159.         MUI_Request(App,NULL,0,NULL,"*_OK","I Can`t Get Active Window !!",TAG_END);
  160.     }
  161. /*END*/
  162. /*FOLDER Locale lgetstring Function
  163. */
  164. static STRPTR lgetstring(long id)
  165. {
  166.     STRPTR builtin;
  167.     builtin=malloc(sizeof(char)*255);
  168.     strcpy(builtin,CatCompArray[id].cca_Str);
  169.     if (LocaleBase) {
  170.         strcpy(builtin,GetCatalogStr(mycatalog,id,builtin));
  171.         }
  172.     return(builtin);
  173.     }
  174. /*END*/
  175.  
  176. /*FOLDER Broker Hook
  177. */
  178. _HOOK_FUNC (long,cxhook,struct Hook *hook,APTR obj,CxMsg *cm)
  179. {
  180.  
  181.     switch (CxMsgType(cm)) {
  182.         case CXM_COMMAND:
  183.             switch (CxMsgID(cm)) {
  184.                 case CXCMD_DISABLE:
  185.                 case CXCMD_ENABLE:
  186.                     break;
  187.                 case CXCMD_KILL:
  188.                     DoMethod(obj,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  189.                     break;
  190.                 case CXCMD_APPEAR:
  191.                     set(mwin,MUIA_Window_Open,TRUE);
  192.                     break;
  193.                 case CXCMD_DISAPPEAR:
  194.                     set(mwin,MUIA_Window_Open,FALSE);
  195.                     set(App,MUIA_Application_Iconified,TRUE);
  196.                     break;
  197.                }
  198.             break;
  199.         case CXM_IEVENT:
  200.             switch (CxMsgID(cm)) {
  201.                 case HOTKEY_MAIN:
  202.                      DoMethod(obj,MUIM_Application_ReturnID,ID_HIDE);
  203.                      break;
  204.                  case HOTKEY_WGRAB:
  205.                      dograb(FALSE);
  206.                      break;
  207.                  case HOTKEY_SGRAB:
  208.                      dograb(TRUE);
  209.                      break;
  210.                  }
  211.              break;
  212.          }
  213.      return(0);
  214.      }
  215. struct Hook cx_hook={
  216.        {NULL,NULL},
  217.        (void *)cxhook,
  218.        NULL,NULL
  219. };
  220. /*END*/
  221. _HOOK_FUNC(void,HelpFunc,struct Hook *hook,Object *help,Object **objptr)
  222. {
  223.     LONG udata=NULL;
  224.     if (*objptr) get(*objptr,MUIA_UserData,&udata);
  225.     set(helptx,MUIA_Text_Contents,udata);
  226.     }
  227. /*FOLDER ReadArgs
  228. */
  229. BOOL popup(long argc, UBYTE **argv)
  230. {
  231.     UBYTE **tt;
  232.     BOOL retval=FALSE;
  233.     struct RDArgs *rarg;
  234.     long vnp;
  235.     long args[]={0};
  236.  
  237.     if (argc==0) {
  238.         if (IconBase=OpenLibrary("icon.library",0)) {
  239.             tt=ArgArrayInit(argc,argv);
  240.             vnp=ArgInt(tt,"POPUP",-5);
  241.             if (vnp>-5) retval=TRUE;
  242.             ArgArrayDone();
  243.             CloseLibrary(IconBase);
  244.             }
  245.         }
  246.     else {
  247.         if (rarg=ReadArgs("POPUP/S",args,NULL)) {
  248.             retval=args[0];
  249.             FreeArgs(rarg);
  250.             }
  251.         }
  252.     return(retval);
  253. }
  254. /*END*/
  255.  
  256.  
  257. void main(long argc,UBYTE **argv)
  258. {
  259.     BOOL running=TRUE,pop;
  260.     long active,on;
  261.     ULONG signals;
  262.     static struct Hook help_hook={{0,0},(void *)HelpFunc,0,0};
  263.     struct NewMenu mn_data[]={
  264.     {NM_TITLE,"",0,0,0,(APTR)MN_PROJECT},
  265.     {NM_ITEM,"","",0,0,(APTR)ID_ABOUT},
  266.     menuBAR,
  267.     {NM_ITEM,"","",0,0,(APTR)ID_HIDE},
  268.     menuBAR,
  269.     {NM_ITEM,"","",0,0,(APTR)ID_QUIT},
  270.     {NM_TITLE,"",0,0,0,(APTR)MN_SETTINGS},
  271.     {NM_ITEM,"","",0,0,(APTR)ID_LOAD},
  272.     {NM_ITEM,"","",0,0,(APTR)ID_LOADENV},
  273.     {NM_ITEM,"","",0,0,(APTR)ID_LOADDEF},
  274.     menuBAR,
  275.     {NM_ITEM,"","",0,0,(APTR)ID_USE},
  276.     {NM_ITEM,"","",0,0,(APTR)ID_SAVE},
  277.     {NM_END,NULL,0,0,0,(APTR)0},
  278.     };
  279.  
  280.  
  281.     init();
  282.      if (!(MYLIBBASE=OpenLibrary(MYLIBNAME,0)))
  283.          fail(NULL,"Can`t Open library!!");
  284.      if (!(CxBase=OpenLibrary("commodities.library",0))) {
  285.          CloseLibrary(MYLIBBASE);
  286.          fail(NULL,"Can`t Open commodities.library!!");
  287.          }
  288.      if (LocaleBase=(struct LocaleBase *)OpenLibrary("locale.library",0)) {
  289.          mycatalog=OpenCatalog(NULL,"wgrab.catalog",OC_BuiltInLanguage,(ULONG)"english",
  290.                                                     OC_Version,(ULONG)1,
  291.                                                     TAG_DONE,(ULONG)NULL);
  292.          }
  293.  
  294.     setmnlabel(0,MSG_PROJECT,NULL);
  295.     setmnlabel(1,MSG_ABOUT,MSG_ABOUT_SC);
  296.     setmnlabel(3,MSG_HIDE,MSG_HIDE_SC);
  297.     setmnlabel(5,MSG_QUIT,MSG_QUIT_SC);
  298.     setmnlabel(6,MSG_SETTINGS,NULL);
  299.     setmnlabel(7,MSG_LOAD,NULL);
  300.     setmnlabel(8,MSG_LOADENV,NULL);
  301.     setmnlabel(9,MSG_LOADDEF,NULL);
  302.     setmnlabel(11,MSG_USE,NULL);
  303.     setmnlabel(12,MSG_SAVE,NULL);
  304.  
  305.     pop=popup(argc,argv);
  306.  
  307.     App = ApplicationObject,
  308.           MUIA_Application_Title,"WGrab",
  309.           MUIA_Application_Version,"$VER: WGrab 01.30 (29.10.95)",
  310.           MUIA_Application_Copyright,"© 1995 Aris Basic",
  311.           MUIA_Application_Author,"Aris Basic",
  312.           MUIA_Application_Description,"Saves Active Window As IFF Picture",
  313.           MUIA_Application_Base,"WGRAB",
  314.           MUIA_Application_BrokerHook,&cx_hook,
  315.           MUIA_Application_SingleTask,TRUE,
  316.           MUIA_Application_Window,mwin=WindowObject,
  317.                                   MUIA_Window_ID,MAKE_ID('M','A','I','N'),
  318.                                   MUIA_Window_Title,"WGrab 01.30",
  319.                                   MUIA_Window_NeedsMouseObject,TRUE,
  320.                                   MUIA_Window_Menustrip,mn_main=MUI_MakeObject(MUIO_MenustripNM,mn_data,0),
  321.                                   WindowContents,VGroup,
  322.                                        Child,HGroup,
  323.                                            Child,Label(lgetstring(MSG_ASK_BEFORE)),
  324.                                            Child,amode=ImageObject,
  325.                                                        ImageButtonFrame,
  326.                                                        MUIA_InputMode,MUIV_InputMode_Toggle,
  327.                                                        MUIA_Image_Spec,MUII_CheckMark,
  328.                                                        MUIA_Image_FreeVert,TRUE,
  329.                                                        MUIA_Selected,TRUE,
  330.                                                        MUIA_Background,MUII_ButtonBack,
  331.                                                        MUIA_ShowSelState,FALSE,
  332.                                                        MUIA_ExportID,EID_AMODE,
  333.                                                        MUIA_UserData,lgetstring(MSG_ASK_HELP),
  334.                                                        End,
  335.                                            Child,Label(lgetstring(MSG_FILENAME)),
  336.                                            Child,pfname=PopaslObject,
  337.                                                        MUIA_Popstring_String,fname=StringObject,
  338.                                                                                    StringFrame,
  339.                                                                                    MUIA_String_MaxLen,256,
  340.                                                                                    MUIA_String_Contents,"RAM:",
  341.                                                                                    MUIA_ExportID,EID_FILENAME,
  342.                                                                                    End,
  343.                                                        MUIA_Popstring_Button,PopButton(MUII_PopFile),
  344.                                                        MUIA_Disabled,TRUE,
  345.                                                        MUIA_UserData,lgetstring(MSG_FILENAME_HELP),
  346.                                                        ASLFR_SleepWindow,TRUE,
  347.                                                        End,
  348.                                            Child,Label(lgetstring(MSG_DIR_MODE)),
  349.                                            Child,dmode=ImageObject,
  350.                                                        ImageButtonFrame,
  351.                                                        MUIA_InputMode,MUIV_InputMode_Toggle,
  352.                                                        MUIA_Image_Spec,MUII_CheckMark,
  353.                                                        MUIA_Image_FreeVert,TRUE,
  354.                                                        MUIA_Selected,FALSE,
  355.                                                        MUIA_Background,MUII_ButtonBack,
  356.                                                        MUIA_ShowSelState,FALSE,
  357.                                                        MUIA_ExportID,EID_DMODE,
  358.                                                        MUIA_Disabled,TRUE,
  359.                                                        MUIA_UserData,lgetstring(MSG_DIR_MODE_HELP),
  360.                                                        End,
  361.                                            End,
  362.                                        Child,ColGroup(2),
  363.                                            Child,Label(lgetstring(MSG_HOTKEY_POPUP)),
  364.                                            Child,mhotkey=StringObject,
  365.                                                          StringFrame,
  366.                                                          MUIA_String_MaxLen,20,
  367.                                                          MUIA_String_Contents,_DEFPOPUP_,
  368.                                                          MUIA_ExportID,EID_MHOTKEY,
  369.                                                          MUIA_UserData,lgetstring(MSG_HOTKEY_POPUP_HELP),
  370.                                                          End,
  371.                                            Child,Label(lgetstring(MSG_HOTKEY_WGRAB)),
  372.                                            Child,gwhotkey=StringObject,
  373.                                                          StringFrame,
  374.                                                          MUIA_String_MaxLen,20,
  375.                                                          MUIA_String_Contents,_DEFWGRAB_,
  376.                                                          MUIA_ExportID,EID_GWHOTKEY,
  377.                                                          MUIA_UserData,lgetstring(MSG_HOTKEY_WGRAB_HELP),
  378.                                                          End,
  379.                                            Child,Label(lgetstring(MSG_HOTKEY_SGRAB)),
  380.                                            Child,gshotkey=StringObject,
  381.                                                          StringFrame,
  382.                                                          MUIA_String_MaxLen,20,
  383.                                                          MUIA_String_Contents,_DEFSGRAB_,
  384.                                                          MUIA_ExportID,EID_GSHOTKEY,
  385.                                                          MUIA_UserData,lgetstring(MSG_HOTKEY_SGRAB_HELP),
  386.                                                          End,
  387.                                            End,
  388.                                        Child,helptx=TextObject,
  389.                                              TextFrame,
  390.                                              MUIA_Text_PreParse,"\033c\033b",
  391.                                              MUIA_UserData,lgetstring(MSG_HELP_HELP),
  392.                                              End,
  393.                                        Child,HGroup,
  394.                                            Child,bt_save=SimpleButton(lgetstring(MSG_GUI_SAVE)),
  395.                                            Child,bt_use=SimpleButton(lgetstring(MSG_GUI_USE)),
  396.                                            Child,bt_quit=SimpleButton(lgetstring(MSG_GUI_QUIT)),
  397.                                            End,
  398.                                        End,
  399.                                   End,
  400.                          End;
  401.  
  402.     if (!App) {
  403.         if (mycatalog) CloseCatalog(mycatalog);
  404.         if (LocaleBase) CloseLibrary((struct Library *)LocaleBase);
  405.         if (CxBase) CloseLibrary(CxBase);
  406.         if (MYLIBBASE) CloseLibrary(MYLIBBASE);
  407.         fail(App,"Could Not Create Application");
  408.         }
  409.  
  410.     DoMethod(App,MUIM_Application_Load,MUIV_Application_Load_ENV);
  411.  
  412.     get(amode,MUIA_Selected,&active);
  413.     if (!active) {
  414.         set(pfname,MUIA_Disabled,FALSE);
  415.         set(dmode,MUIA_Disabled,FALSE);
  416.         }
  417.     get(dmode,MUIA_Selected,&active);
  418.     if (active) set(amode,MUIA_Disabled,TRUE);
  419.  
  420.  
  421.     DoMethod(bt_quit,MUIM_Notify,MUIA_Pressed,FALSE,App,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit);
  422.     DoMethod(bt_save,MUIM_Notify,MUIA_Pressed,FALSE,App,2,MUIM_Application_ReturnID,ID_SAVE);
  423.     DoMethod(bt_use,MUIM_Notify,MUIA_Pressed,FALSE,App,2,MUIM_Application_ReturnID,ID_USE);
  424.     DoMethod(mwin,MUIM_Notify,MUIA_Window_MouseObject,MUIV_EveryTime,helptx,3,MUIM_CallHook,&help_hook,MUIV_TriggerValue);
  425.     DoMethod(amode,MUIM_Notify,MUIA_Selected,TRUE,App,2,MUIM_Application_ReturnID,ID_AMODEON);
  426.     DoMethod(amode,MUIM_Notify,MUIA_Selected,FALSE,App,2,MUIM_Application_ReturnID,ID_AMODEOFF);
  427.     DoMethod(dmode,MUIM_Notify,MUIA_Selected,TRUE,App,2,MUIM_Application_ReturnID,ID_DMODEON);
  428.     DoMethod(dmode,MUIM_Notify,MUIA_Selected,FALSE,App,2,MUIM_Application_ReturnID,ID_DMODEOFF);
  429.     DoMethod(mwin,MUIM_Notify,MUIA_Window_CloseRequest,TRUE,App,2,MUIM_Application_ReturnID,ID_HIDE);
  430.  
  431.     get(App,MUIA_Application_Broker,&broker);
  432.     get(App,MUIA_Application_BrokerPort,&broker_port);
  433.  
  434.     if (NULL==(cmhotkey=HotKey(mhotkeystr(),broker_port,HOTKEY_MAIN))) {
  435.         CloseLibrary(CxBase);
  436.         CloseLibrary(MYLIBBASE);
  437.         fail(App,"Cannot Create Hotkeys!!");
  438.         }
  439.     if (NULL==(cgwhotkey=HotKey(gwhotkeystr(),broker_port,HOTKEY_WGRAB))) {
  440.         CloseLibrary(CxBase);
  441.         CloseLibrary(MYLIBBASE);
  442.         fail(App,"Cannot Create Hotkeys!!");
  443.         }
  444.     if (NULL==(cgshotkey=HotKey(gshotkeystr(),broker_port,HOTKEY_SGRAB))) {
  445.         CloseLibrary(CxBase);
  446.         CloseLibrary(MYLIBBASE);
  447.         fail(App,"Cannot Create Hotkeys!!");
  448.         }
  449.  
  450.     AttachCxObj(broker,cmhotkey);
  451.     AttachCxObj(broker,cgwhotkey);
  452.     AttachCxObj(broker,cgshotkey);
  453.  
  454.     if (pop) set(mwin,MUIA_Window_Open,TRUE);
  455.     else set(App,MUIA_Application_Iconified,TRUE);
  456.  
  457.     while (running) {
  458.         switch (DoMethod(App,MUIM_Application_Input,&signals))
  459.             {
  460.                 case MUIV_Application_ReturnID_Quit:
  461.                     running=FALSE;
  462.                     break;
  463.                 case ID_AMODEON:
  464.                     get(dmode,MUIA_Selected,&active);
  465.                     if (active) set(dmode,MUIA_Selected,FALSE);
  466.                     set(dmode,MUIA_Disabled,TRUE);
  467.                     set(pfname,MUIA_Disabled,TRUE);
  468.                     break;
  469.                 case ID_AMODEOFF:
  470.                     set(dmode,MUIA_Disabled,FALSE);
  471.                     set(pfname,MUIA_Disabled,FALSE);
  472.                     break;
  473.                 case ID_DMODEON:
  474.                     get(amode,MUIA_Selected,&active);
  475.                     if (active) set(amode,MUIA_Selected,FALSE);
  476.                     set(amode,MUIA_Disabled,TRUE);
  477.                     break;
  478.                 case ID_DMODEOFF:
  479.                     set(amode,MUIA_Disabled,FALSE);
  480.                     break;
  481.                 case ID_SAVE:
  482.                     DoMethod(App,MUIM_Application_Save,MUIV_Application_Save_ENVARC);
  483.                 case ID_USE:
  484.                     DoMethod(App,MUIM_Application_Save,MUIV_Application_Save_ENV);
  485.                     setnewhotkeys();
  486.                 case ID_HIDE:
  487.                     get(App,MUIA_Application_Iconified,&on);
  488.                     if(!on) {
  489.                       set(mwin,MUIA_Window_Open,FALSE);
  490.                       set(App,MUIA_Application_Iconified,TRUE);
  491.                       }
  492.                     else {
  493.                         set(App,MUIA_Application_Iconified,FALSE);
  494.                         set(mwin,MUIA_Window_Open,TRUE);
  495.                         }
  496.                     break;
  497.                 case ID_LOAD:
  498.                     DoMethod(App,MUIM_Application_Load,MUIV_Application_Load_ENV);
  499.                 case ID_LOADENV:
  500.                     DoMethod(App,MUIM_Application_Load,MUIV_Application_Load_ENVARC);
  501.                     setnewhotkeys();
  502.                     break;
  503.                 case ID_LOADDEF:
  504.                     set(amode,MUIA_Selected,TRUE);
  505.                     set(dmode,MUIA_Disabled,TRUE);
  506.                     set(amode,MUIA_Disabled,FALSE);
  507.                     set(dmode,MUIA_Selected,FALSE);
  508.                     set(pfname,MUIA_Disabled,TRUE);
  509.                     break;
  510.                 case ID_ABOUT:
  511.                     MUI_Request(App,mwin,0,NULL,"*_OK","\033c\033bWGrab 01.30\n\033n"
  512.                                                        "© Aris Basic\n\n"
  513.                                                        "This Program Uses MUI \n© Stefan Stuntz",TAG_DONE);
  514.                     break;
  515.                 }
  516.             if (running && signals) Wait(signals);
  517.             }
  518.         set(mwin,MUIA_Window_Open,FALSE);
  519.         if (mycatalog) CloseCatalog(mycatalog);
  520.         if (LocaleBase) CloseLibrary((struct Library *)LocaleBase);
  521.         if (CxBase) CloseLibrary(CxBase);
  522.         if (MYLIBBASE) CloseLibrary(MYLIBBASE);
  523.         fail(App,NULL);
  524.         }
  525.  
  526.  
  527.  
  528.  
  529.